from fastapi import APIRouter, HTTPException, UploadFile, File, Query, Path
from typing import List
from app.schemas.document import DocumentCreate, DocumentResponse
from app.models.document import Document

router = APIRouter()

@router.get(
    "/",
    response_model=List[DocumentResponse],
    tags=["Documents"],
    summary="获取所有文档",
    description="返回系统中的所有文档列表",
    response_description="文档列表"
)
async def get_documents(
    skip: int = Query(0, description="跳过的记录数", ge=0),
    limit: int = Query(100, description="返回的记录数", ge=1, le=100)
):
    """
    获取文档列表
    
    该接口返回系统中的所有文档，支持分页查询
    
    - **skip**: 跳过的记录数
    - **limit**: 返回的记录数，最大100
    """
    return await Document.all().offset(skip).limit(limit)

@router.post(
    "/",
    response_model=DocumentResponse,
    tags=["Documents"],
    summary="创建新文档",
    description="创建一个新的文档记录",
    response_description="创建的文档信息",
    status_code=201
)
async def create_document(document: DocumentCreate):
    """
    创建新文档
    
    接收文档信息并创建新的文档记录
    
    - **title**: 文档标题
    - **description**: 文档描述（可选）
    - **file_path**: 文件路径
    - **file_type**: 文件类型
    - **total_pages**: 总页数
    """
    return await Document.create(**document.dict()) 